package com.service.weChatWifiLogin.service;

import com.service.config.utils.Result;
import com.service.weChatWifiLogin.dto.AddShopInfoDto;
import com.service.weChatWifiLogin.dto.CheckTenantDto;
import com.service.weChatWifiLogin.dto.ShopInfoDto;
import com.service.weChatWifiLogin.entity.ShopInfo;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * 店铺表(ShopInfo)表服务接口
 *
 * @author makejava
 * @since 2021-06-16 17:10:33
 */
public interface ShopInfoService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ShopInfo queryById(String id);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<ShopInfo> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param shopInfo 实例对象
     * @return 实例对象
     */
    ShopInfo insert(ShopInfo shopInfo);

    /**
     * 修改数据
     *
     * @param shopInfo 实例对象
     * @return 实例对象
     */
    ShopInfo update(ShopInfo shopInfo);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    Result deleteById(String id) throws Exception;

    Result updateShopInfo(ShopInfoDto shopInfoDto) throws Exception;

    Result addShopInfo( AddShopInfoDto addShopInfoDto);

    void queryByShopId(HttpServletResponse response, HttpServletRequest request,String shopId);

    Result queryByBossId(String bAuthToken,String bossId);

    Result updateShopInfoConfig(ShopInfoDto shopInfoDto);

    Result queryShopInfoById(String bAuthToken, String shopId ,String flag) throws Exception;

    Result cancelShopInfoConfig(String shopId);

    Result queryRecordInfo(String shopId);

    Result queryManageRecordInfo(String shopId, Boolean status,String startDate, String endDate,Integer pageSize ,Integer pageNum ) throws ParseException;

    Result check(CheckTenantDto checkTenantDto);

    Result returnShopInfoConfig(String shopId);

    Result queryUserList(String shopId, Integer type);

    Result configUserList(String shopId, Integer type);
}
